Содержание
API-интерфейс позволяет работать с данными системы ECOS в привычном интерфейсе вашей информационной системы.
С помощью Records API вы можете выполнять любые действия с данными, которые хранятся в любом из микросервисов ECOS. Подробнее про :ref:`Records API <Records_API>`
Примеры использования API:
- получение и изменение информации о маршрутах;
- управление набором и составом групп пользователей.
Important
Для обеспечения корректной отправки http-запросов произведите настройки аутентификации в соответствии со :ref:`статьей <keycloak_postman>`
URL | {{host}}/gateway/api/records/query
|
Type | POST |
Запрос | {
"query": {
"sourceId": "emodel/aro-internal-type",
"query": {
"att": "_status",
"t": "eq",
"val": "new"
},
"language": "predicate"
},
"attributes": [
"_content.url"
]
}
|
Ответ | {
"records": [
{
"id": "emodel/aro-internal-type@86edb336-7816-41fa-9809-680a077e0b5e",
"attributes": {
"_content.url": "/gateway/emodel/api/ecos/webapp/content?ref=aro-internal-type%4086edb336-7816-41fa-9809-680a077e0b5e&att=content"
}
},
{
"id": "emodel/aro-internal-type@dde85aac-e875-471c-a44d-a4135fc7c56a",
"attributes": {
"_content.url": "/gateway/emodel/api/ecos/webapp/content?ref=aro-internal-type%40dde85aac-e875-471c-a44d-a4135fc7c56a&att=content"
}
}
],
"errors": [],
"hasMore": false,
"totalCount": 2
}
|
Далее сделать GET запрос для скачивания контента:
GET {{host}}/gateway/emodel/api/ecos/webapp/content?ref=aro-internal-type%40dde85aac-e875-471c-a44d-a4135fc7c56a&att=content
URL | {{host}}/gateway/api/records/query
|
Type | POST |
Запрос | {
"records": [
"emodel/aro-internal-type@e3b81a2b-cdc9-42bc-abbc-a6a564aedbb8"
],
"attributes": [
"_content.url"
]
}
|
Ответ | {
"records": [
{
"id": "emodel/aro-internal-type@e3b81a2b-cdc9-42bc-abbc-a6a564aedbb8",
"attributes": {
"_content.url": "/gateway/emodel/api/ecos/webapp/content?ref=aro-internal-type%40e3b81a2b-cdc9-42bc-abbc-a6a564aedbb8&att=content"
}
}
],
"errors": []
}
|
Далее сделать GET запрос для скачивания контента:
GET {{host}}/gateway/emodel/api/ecos/webapp/content?ref=aro-internal-type%40e3b81a2b-cdc9-42bc-abbc-a6a564aedbb8&att=content
URL | {{host}}/gateway/api/records/query
|
Type | POST |
Запрос | {"query":{
"sourceId":"alfresco/",
"query":{
"att":"_type",
"val":"emodel/type@testdl-routeTemplateItem",
"t":"eq"
},
"language":"predicate",
"page":{"skipCount":0,"maxItems":10,"page":1},
"consistency":"EVENTUAL",
"sortBy":[{"attribute":"cm:created","ascending":false}]},
"attributes":["testdl:rtCode?disp"]
}
|
Ответ | {
"records": [
{
"id": "alfresco/@workspace://SpacesStore/820f88b5-e722-4bc0-933f-926d57e728aa",
"attributes": {
"testdl:rtCode?disp": "1"
}
}
],
"errors": [],
"hasMore": false,
"totalCount": 1
}
|
URL | {{host}}/gateway/alfresco/alfresco/s/api/orgstruct/v2/group/_orgstruct_home_/children?addAdminGroup=true&branch=true&excludeAuthorities=&group=true&role=true&user=true
|
Type | GET |
Ответ | [
{
"nodeRef": "workspace://SpacesStore/03094bf2-1395-4ded-98ff-3aba20698260",
"fullName": "GROUP_all",
"shortName": "all",
"displayName": "Все пользователи",
"authorityType": "GROUP",
"groupType": "branch",
"groupSubType": "company"
},
{
"nodeRef": "workspace://SpacesStore/6ac1289b-45c6-43b5-ad95-fdbbe1302d69",
"fullName": "GROUP_company",
"shortName": "company",
"displayName": "Организация",
"authorityType": "GROUP",
"groupType": "branch",
"groupSubType": "company"
}
]
|
URL | {{host}}/gateway/api/records/mutate
|
Type | POST |
Запрос | {
"records": [
{
"id":"alfresco/@workspace://SpacesStore/820f88b5-e722-4bc0-933f-926d57e728aa", // ID маршрута
"attributes":{
"testdl:templateRouteSignerAssoc?str":"workspace://SpacesStore/15d05def-45fd-41cf-bf8d-96ecd422edea", // этап, на который необходимо добавить пользователя/группу (указать ID пользователя/группы), если необходимо удалить с этапа, то указать “”
"_state?str":"submitted"
}
}
]
}
|
Ответ | {
"records": [
{
"id": "alfresco/@workspace://SpacesStore/820f88b5-e722-4bc0-933f-926d57e728aa",
"attributes": {}
}
],
"errors": []
}
|
URL | {{host}}/gateway/api/records/query
|
Type | POST |
Запрос | {
"query":{
"query":{
"t":"and",
"val":[{"t":"eq","att":"TYPE","val":"cm:person"}]},
"language":"predicate",
"consistency":"EVENTUAL",
"page":{"maxItems":10,"skipCount":0}},
"attributes":{"fullName":".disp","userName":"userName"}
}
|
Ответ | {
"records": [
{
"id": "alfresco/@workspace://SpacesStore/e0d4333e-97e1-4d42-a4d0-83e4259ed936",
"attributes": {
"fullName": "Guest",
"userName": "guest"
}
},
{
"id": "alfresco/@workspace://SpacesStore/6985ba61-155a-4ae8-aeb3-28acbc59f5f4",
"attributes": {
"fullName": "system",
"userName": "system"
}
},
{
"id": "alfresco/@workspace://SpacesStore/15d05def-45fd-41cf-bf8d-96ecd422edea",
"attributes": {
"fullName": "Administrator",
"userName": "admin"
}
}
],
"errors": [],
"hasMore": false,
"totalCount": 3
}
|
URL | {{host}}/gateway/api/records/query
|
Type | POST |
Запрос | {"records":
["people@admin"],
"attributes":
["groups[]"]
}
|
Ответ | {
"records": [
{
"id": "people@admin",
"attributes": {
"groups[]": [
"ALFRESCO_ADMINISTRATORS",
"ALFRESCO_MODEL_ADMINISTRATORS"
]
}
}
],
"errors": []
}
|
URL | {{host}}/gateway/api/records/mutate
|
Type | POST |
Запрос | {"records":[
{
"id":"emodel/person@admin",
"attributes":{
"att_add_authorityGroups":"emodel/authority-group@GROUP_company_accountancy"
}}]}
|
att_add_authorityGroups – добавление в группу
att_rem_authorityGroups – удаление из группы
URL | {{host}}/gateway/api/records/query
|
Type | POST |
Запрос | {"query":{
"sourceId": "emodel/person",
"query": {"t": "contains", "a": "authorityGroups", "v": "emodel/authority-group@orders-technologist"},
"language": "predicate"
}}
|
Ответ | {
"records": [
"emodel/person@admin"
],
"errors": [],
"hasMore": false,
"totalCount": 1
}
|
Просмотр групп в группе аналогичен просмотру пользователей в группе, но sourceId равен “emodel/authority-group“.
Просмотр пользователей или групп с учетом иерархии вниз (т.е. указать корень оргструктуры или любую другую группу, но так же ищется и во всех подгруппах) - то же что и просмотр пользователей в группе, но вместо “authorityGroups” использовать “authorityGroupsFull“
Таблица 1 Описание полейПоле | Наименование |
---|---|
fullName | Полное наименование |
shortName | Сокращенное наименование |
id | ID записи |
nodeRef | Ссылка на запись в системе Citeck |
displayName | Отображаемое наименование |
authorityType | Тип полномочий User/Group |
groupType | Тип группы |
groupSubType | Тип подгруппы |
userName | Логин |
templateRouteSignerAssoc | Этап, на который необходимо добавить пользователя/группу (указать ID пользователя/группы), если необходимо удалить с этапа указать “” |
att_add_authorityGroups | att_add_authorityGroups – добавление в группу
att_rem_authorityGroups – удаление из группы
|
rtCode | Код шаблона |
_state | Тип состояния |
errors | Значение ошибки, если при запросе она произошла |
hasMore | Есть ли дальше рекорды (записи) |
totalCount | Общее количество найденных записей |
disp | Значение для вывода |
value | Значение |
Параметр | Значение |
---|---|
Блок “page” | Параметр для настройки пагинации.
Необязательный параметр.
|
Блок “sortBy” | Параметр для сортировки.
Необязательный параметр.
|
Блок “attributes“ | Параметры (см. Таблица 1), которые необходимо получить на выходе.
Необязательный параметр.
Можно не указывать параметры в “attributes“ или убрать данный блок и на выходе получить список Id записей.
|
sourceId | Источник данных для поиска. В данном случае alfresco.
Возможные варианты:
• reports-data
• alfresco
|
query | Необходимый predicate query для поиска записей |
att | Название аттрибута |
val | Значение |
t | Типы предикатов.
Возможные варианты:
• starts
• ends
• or
• and
• empty
• not
• eq
• gt
• ge
• lt
• le
• like
• in
• contains
|
language | Язык запроса. На текущий момент поддерживается только predicate |
consistency | Консистенция (Согласованность)
Возможные варианты:
• EVENTUAL
• TRANSACTIONAL
• DEFAULT
• TRANSACTIONAL_IF_POSSIBLE
|
{ "records": [ { "id": "alfresco/@workspace://SpacesStore/10a8c2e8-2c14-4c64-83b3-06b8bfc45006", //id workspace, в который данные необходимо добавить "attributes": { "testpkg: poAssoc?assoc": [ "dict@testpkg:po-alias-4" // alias должен быть уникальным в пределах запроса, можно задать константой ] } }, { "id": "dict@testpkg: po", "attributes": { "_alias?str": "dict@testpkg:po-alias-4", "testpkg:poValue?str": "1234567890", "testpkg: poPpsDate?str":"2023-05-19T00:00:00Z", "_state?str": "submitted", "_formInfo?json": { "submitName": { "en": "Cохранить" } "formId": "testpkg-po-form" } } } ] }
{ "records": [ { "id": "alfresco/@workspace://SpacesStore/10a8c2e8-2c14-4c64-83b3-06b8bfc45006", "attributes": { "att_add_testpkg: poAssoc?assoc": [ "dict@testpkg:po-alias-4" ] } }, { "id": "dict@testpkg: po", "attributes": { "_alias?str": "dict@testpkg:po-alias-4", "testpkg:poValue?str": "1234567890", "testpkg: poPpsDate?str":"2023-05-19T00:00:00Z", "_state?str": "submitted", "_formInfo?json": { "submitName": { "en": "Cохранить" } "formId": "testpkg-po-form" } } } ] }